
type
   P_sigaction = ^_sigaction;
   _sigaction = record // Renamed, avoid conflict with sigaction function
     case integer of
       1: (sa_handler : __sighandler_t;
           sa_mask : __sigset_t;
           sa_flags : longint;
           sa_restorer : procedure ;cdecl;
          );
       // Kylix compatibility
       2: (__sigaction_handler: __sighandler_t);
   end;

const
   SA_NOCLDSTOP = 1;
   SA_NOCLDWAIT = 2;
   SA_SIGINFO = 4;

const
   SA_ONSTACK = $08000000;
   SA_RESTART = $10000000;
   SA_NODEFER = $40000000;
   SA_RESETHAND = $80000000;

   SA_INTERRUPT = $20000000;
   SA_NOMASK = SA_NODEFER;
   SA_ONESHOT = SA_RESETHAND;
   SA_STACK = SA_ONSTACK;

const
   SIG_BLOCK = 0;
   SIG_UNBLOCK = 1;
   SIG_SETMASK = 2;

{ ---------------------------------------------------------------------
    Borland compatibility types
  ---------------------------------------------------------------------}

Type
  TSigAction = _sigaction;
  PSigAction = ^TSigAction;
  TRestoreHandler = procedure; cdecl;
   __sigaction = _sigaction;
  TSigActionHandler = procedure(Signal: Integer); cdecl; 
    

